package org.dbp.entrada.conf.enumerados;
/**
 * 
 * Aqui se van a definir las siguientes plantillas.
 * 
 * @author dbp
 *
 */
public enum Plantillas {
	ENTIDAD("entidad",".java","${paqueteProyecto}.bom","","bom","java",""),
	DAO("dao",".java","${paqueteProyecto}.dao","","service","java","dao"),
	DAOIMP("daoImpl",".java","${paqueteProyecto}.dao","impl","service","java","daoImpl"),
	SERVICE("service",".java","${paqueteProyecto}.service","","service","java","service"),
	SERVICEIMPL("serviceImpl",".java","${paqueteProyecto}.service","impl","service","java","serviceImpl"),
	FILTRO("filtro",".java","${paqueteProyecto}.filtro","","service","java","filtro"),
	FORM("form",".java","${paqueteProyecto}.webapp.form","","webapp","java","form"),
	RegistroResultadoForm("registroResultadoForm",".java","${paqueteProyecto}.webapp.form","","webapp","java","registroResultadoForm"),
	FILTROFORM("filtroForm",".java","${paqueteProyecto}.webapp.form","","webapp","java","filtroForm"),
	PARSER("parser",".java","${paqueteProyecto}.webapp.parser","","webapp","java","parser"),
	CONTROLLER("controller",".java","${paqueteProyecto}.webapp.controller","","webapp","java","controller"),
	CRUDJSP("crudJsp",".jsp","${web-inf}.jsp.${entidadId}","","webapp","webApp","",TipoNombreFichero.UNCAPITALIZAR),	
	FILTROJSP("filtroJsp",".jsp","${web-inf}.jsp.${entidadId}.filtro","","webapp","webApp","filtro",TipoNombreFichero.UNCAPITALIZAR),
	RESULTADOJSP("resultadoJsp",".jsp","${web-inf}.jsp.${entidadId}.filtro","","webapp","webApp","resultado",TipoNombreFichero.UNCAPITALIZAR),
	TILES("tiles",TipoPlantilla.OUT)
	;
	private String nombre;
	private String extension;
	private String paqueteGeneral;
	private String postPaquete;
	private String proyecto;
	private String subPath;
	private String sufijo;
	private TipoNombreFichero tipoNombreFichero;
	private TipoPlantilla tipo;
	
	private Plantillas(String nombre, String extension,String paqueteGeneral,String postPaquete
			,String proyecto,String subPath,String sufijo) {
		this(nombre,extension,paqueteGeneral,postPaquete,proyecto,subPath,sufijo,TipoNombreFichero.NADA);
	}
	
	private Plantillas(String nombre, String extension,String paqueteGeneral,String postPaquete,String proyecto
			,String subPath,String sufijo,TipoNombreFichero tipoNombreFichero) {
		this(nombre,extension,paqueteGeneral,postPaquete,proyecto,subPath,sufijo,tipoNombreFichero,TipoPlantilla.FICHERO);
	}

	private Plantillas(String nombre, String extension,String paqueteGeneral,String postPaquete,String proyecto
			,String subPath,String sufijo,TipoPlantilla tipo) {
		this(nombre,extension,paqueteGeneral,postPaquete,proyecto,subPath,sufijo,TipoNombreFichero.NADA,tipo);
	}
	private Plantillas(String nombre,TipoPlantilla tipo){
		this(nombre,"","","","","","",TipoNombreFichero.NADA,tipo);
	}
	
	private Plantillas(String nombre, String extension,String paqueteGeneral,String postPaquete,String proyecto
			,String subPath,String sufijo,TipoNombreFichero tipoNombreFichero,TipoPlantilla tipo) {
		this.nombre = nombre;
		this.extension = extension;
		this.paqueteGeneral=paqueteGeneral;
		this.postPaquete=postPaquete;
		this.proyecto=proyecto;
		this.subPath=subPath;
		this.sufijo=sufijo;
		this.tipoNombreFichero=tipoNombreFichero;
		this.tipo=tipo;
	}
	
	
	
	public TipoPlantilla getTipo() {
		return tipo;
	}

	public void setTipo(TipoPlantilla tipo) {
		this.tipo = tipo;
	}

	public TipoNombreFichero getTipoNombreFichero() {
		return tipoNombreFichero;
	}



	public void setTipoNombreFichero(TipoNombreFichero tipoNombreFichero) {
		this.tipoNombreFichero = tipoNombreFichero;
	}



	public String getSufijo() {
		return sufijo;
	}



	public void setSufijo(String sufijo) {
		this.sufijo = sufijo;
	}



	public String getSubPath() {
		return subPath;
	}



	public void setSubPath(String subPath) {
		this.subPath = subPath;
	}



	public String getProyecto() {
		return proyecto;
	}



	public void setProyecto(String proyecto) {
		this.proyecto = proyecto;
	}



	public String getPostPaquete() {
		return postPaquete;
	}


	public void setPostPaquete(String postPaquete) {
		this.postPaquete = postPaquete;
	}


	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getExtension() {
		return extension;
	}
	public void setExtension(String extension) {
		this.extension = extension;
	}
	public String getPaqueteGeneral() {
		return paqueteGeneral;
	}
	public void setPaqueteGeneral(String paqueteGeneral) {
		this.paqueteGeneral = paqueteGeneral;
	}
	
}
